From: David Polakovic
Date: Tue, 3 Nov 2026 15:06:11 +0000 (+0100)
Subject: feat: Custom game types extraction implemented
X-Git-Tag: 0.3.0
X-Git-Url: https://git.dpolakovic.space/%22%22.esc_url%28%24base_url%29.%22//%22%24link/%22/%22%22.esc_url%28%24base_url%29.%22//%22%24link/%22?a=commitdiff_plain;h=refs%2Fheads%2Fmaster;p=halo3-reclaimer
feat: Custom game types extraction implemented
-new class GameModeReclaimer.java
-updated documentation, README and build.xml for version changes
-changed Error numbering
---
diff --git a/README.txt b/README.txt
index 2b6ef61..1d3ec49 100755
--- a/README.txt
+++ b/README.txt
@@ -8,26 +8,27 @@ ABOUT:
Today it is almost impossible to get you player data
like screenshots or Forge map variants from classic
Xbox 360 Halo 3 to you PC. This program solves this
-problem. The reclaimer currently exports:
+problem. The Reclaimer currently exports:
- player screenshots
- Forge map variants
+- Custom game types
BUILDING FORM SOURCE:
- Even tough I am not a supporter of distributing software
+ Even though I am not a supporter of distributing software
in already built form, I do so for the comfort of target
audience of this specific program. So unless you want to
change some suff in the code, YOU CAN SKIP THIS PROCEDURE.
Otherwise, there is a build.xml file configured for your
- (and mine) convinience which requires build tool Apache Ant.
+ (and mine) convinience, which requires build tool Apache Ant.
https://ant.apache.org/index.html
To build the program:
1. Install Ant
2. Inspect the 'build.xml' in root directory
- 3. Inspect the code in src to see what it does
+ 3. Inspect the code in src/ to see what it does
4. Then simply run:
ant all
@@ -49,7 +50,7 @@ HOW TO RUN:
HOW TO USE
- See user manual in 'Doc/user-manual.pdf'.
+ See user manual in doc/user-manual.pdf.
@@ -73,3 +74,10 @@ CONTACT:
RELEASE NOTES:
0.1 - Screenshots extracting
0.2 - Forge maps extracting
+ 0.3 - Custom game types extracting
+
+
+
+TO DO:
+ 1.0 - Films extracting
+ 1.? - Campaign saves extracting
diff --git a/build.xml b/build.xml
index 820bf86..698ca18 100644
--- a/build.xml
+++ b/build.xml
@@ -73,8 +73,8 @@
version="true"
use="true"
windowtitle="Halo 3 Reclaimer"
- doctitle="Halo 3 Reclaimer - File extractor from Xbox 360 version of Halo 3"
- bottom="Copyright 2025. Documentation licensed under GFDL v1.3."
+ doctitle="Halo 3 Reclaimer - player data extractor from Xbox 360 version of Halo 3"
+ bottom="Copyright 2025, 2026. Documentation licensed under GFDL v1.3."
overview="overview.html">
@@ -90,4 +90,4 @@
-
\ No newline at end of file
+
diff --git a/build/Arbiter$Kind.class b/build/Arbiter$Kind.class
index 90195c3..13e877d 100644
Binary files a/build/Arbiter$Kind.class and b/build/Arbiter$Kind.class differ
diff --git a/build/Arbiter.class b/build/Arbiter.class
index 17cab3c..dc7d0b0 100644
Binary files a/build/Arbiter.class and b/build/Arbiter.class differ
diff --git a/build/Cortana.class b/build/Cortana.class
index 54caa78..8513d64 100644
Binary files a/build/Cortana.class and b/build/Cortana.class differ
diff --git a/build/ErrorHandler.class b/build/ErrorHandler.class
index e0c5fce..365a24f 100644
Binary files a/build/ErrorHandler.class and b/build/ErrorHandler.class differ
diff --git a/build/GameModeReclaimer.class b/build/GameModeReclaimer.class
new file mode 100644
index 0000000..d874a20
Binary files /dev/null and b/build/GameModeReclaimer.class differ
diff --git a/build/GraphicalUI$BrowseRawActionListener$1.class b/build/GraphicalUI$BrowseRawActionListener$1.class
index 11b2217..0c1173c 100644
Binary files a/build/GraphicalUI$BrowseRawActionListener$1.class and b/build/GraphicalUI$BrowseRawActionListener$1.class differ
diff --git a/build/GraphicalUI$BrowseRawActionListener.class b/build/GraphicalUI$BrowseRawActionListener.class
index 5245384..c092a72 100644
Binary files a/build/GraphicalUI$BrowseRawActionListener.class and b/build/GraphicalUI$BrowseRawActionListener.class differ
diff --git a/build/GraphicalUI$BrowseSaveActionListener.class b/build/GraphicalUI$BrowseSaveActionListener.class
index 18637bf..7e9f61b 100644
Binary files a/build/GraphicalUI$BrowseSaveActionListener.class and b/build/GraphicalUI$BrowseSaveActionListener.class differ
diff --git a/build/GraphicalUI$ReclaimActionListener$1.class b/build/GraphicalUI$ReclaimActionListener$1.class
index db8c726..e2c5b56 100644
Binary files a/build/GraphicalUI$ReclaimActionListener$1.class and b/build/GraphicalUI$ReclaimActionListener$1.class differ
diff --git a/build/GraphicalUI$ReclaimActionListener.class b/build/GraphicalUI$ReclaimActionListener.class
index 8756b54..6613277 100644
Binary files a/build/GraphicalUI$ReclaimActionListener.class and b/build/GraphicalUI$ReclaimActionListener.class differ
diff --git a/build/GraphicalUI.class b/build/GraphicalUI.class
index 4203d4e..2dc9522 100644
Binary files a/build/GraphicalUI.class and b/build/GraphicalUI.class differ
diff --git a/build/MapReclaimer$1.class b/build/MapReclaimer$1.class
deleted file mode 100644
index 7c73151..0000000
Binary files a/build/MapReclaimer$1.class and /dev/null differ
diff --git a/build/MapReclaimer$ContentInfo.class b/build/MapReclaimer$ContentInfo.class
new file mode 100644
index 0000000..a292b1f
Binary files /dev/null and b/build/MapReclaimer$ContentInfo.class differ
diff --git a/build/MapReclaimer$MapInfo.class b/build/MapReclaimer$MapInfo.class
deleted file mode 100644
index 677ce76..0000000
Binary files a/build/MapReclaimer$MapInfo.class and /dev/null differ
diff --git a/build/MapReclaimer$StfsEntry.class b/build/MapReclaimer$StfsEntry.class
index a238425..4e78972 100644
Binary files a/build/MapReclaimer$StfsEntry.class and b/build/MapReclaimer$StfsEntry.class differ
diff --git a/build/MapReclaimer$StfsPackage.class b/build/MapReclaimer$StfsPackage.class
index 12c5e3a..93e7c2c 100644
Binary files a/build/MapReclaimer$StfsPackage.class and b/build/MapReclaimer$StfsPackage.class differ
diff --git a/build/MapReclaimer.class b/build/MapReclaimer.class
index 65cfeb1..8c72a47 100644
Binary files a/build/MapReclaimer.class and b/build/MapReclaimer.class differ
diff --git a/build/ScreenshotReclaimer.class b/build/ScreenshotReclaimer.class
index dff2b10..8d1c3c1 100644
Binary files a/build/ScreenshotReclaimer.class and b/build/ScreenshotReclaimer.class differ
diff --git a/build/TerminalUI.class b/build/TerminalUI.class
index 602d2c3..69b0969 100644
Binary files a/build/TerminalUI.class and b/build/TerminalUI.class differ
diff --git a/doc/Arbiter.html b/doc/Arbiter.html
index 0e1d10d..7e2d7e4 100644
--- a/doc/Arbiter.html
+++ b/doc/Arbiter.html
@@ -2,9 +2,9 @@
-
+
Arbiter (Halo 3 Reclaimer)
-
+
@@ -118,18 +118,20 @@ extends java.lang.Object
Cortana first, which copies the Halo 3 files out of the Xbox file system;
other files on the stick are ignored then.
-
Halo 3 keeps every screenshot and every Forge map in its own package,
- so the Arbiter looks inside each file: a package holding
+
Halo 3 keeps every screenshot, Forge map and custom game type in its own
+ package, so the Arbiter looks inside each file: a package holding
screen.shot is a screenshot, one holding sandbox.map
- is a map. Screenshots are checked first, then maps. Anything else is skipped.
- Only when the content says nothing (DDS, TGA, raw textures) the file name
- decides, like in version 1.0.
+ is a map and one holding variant.slayer, variant.ctf...
+ is a game mode. Screenshots are checked first, then maps, then game modes.
+ Anything else is skipped. Only when the content says nothing (DDS, TGA,
+ raw textures) the file name decides, like in version 1.0.
-
Results go to two folders in the output directory:
- screenshots-reclaimed and maps-reclaimed.